In a data network it is conventional for a network file server containing disk storage to service storage access requests from multiple network clients. The storage access requests, for example, are serviced in accordance with a network file access protocol such as the Network File System (NFS) or the Common Internet File System (CIFS) protocol. NFS is described in Bill Nowicki, “NFS: Network File System Protocol Specification,” Network Working Group, Request for Comments: 1094, Sun Microsystems, Inc., Mountain View, Calif., March 1989. CIFS is described in Paul L. Leach and Dilip C. Naik, “A Common Internet File System,” Microsoft Corporation, Redmond, Wash., Dec. 19, 1997.
A network file server typically includes a digital computer for servicing storage access requests in accordance with at least one network file access protocol, and an array of disk drives. The computer has been called by various names, such as a storage controller, a data mover, or a file server. The computer typically performs client authentication, enforces client access rights to particular storage volumes, directories, or files, and maps directory and file names to allocated logical blocks of storage.
System administrators have been faced with an increasing problem of integrating multiple storage servers of different types into the same data storage network. In the past, it was often possible for the system administrator to avoid this problem by migrating data from a number of small servers into one new large server. The small servers were removed from the network. Then the storage for the data was managed effectively using storage management tools for managing the storage in the one new large server.
Recently, storage vendors have offered global file virtualization capabilities for integrating multiple storage servers of different types into the same data storage network. The global virtualization capabilities provide a mapping between a global virtual namespace exported to network clients and local namespaces of file systems stored in the multiple storage servers of different types. Often the global virtualization capabilities include a facility for migration of files between the multiple storage servers in a way that is transparent to client access to the files. The files can be migrated for load balancing or in response to frequency of access in a storage hierarchy. The global virtualization capabilities, for example, are provided by a namespace server or they are incorporated into a gateway between a between a client-server network and a backend network-attached storage (NAS) network. See, for example, Bruck et al., U.S. Pat. No. 6,691,165 issued Feb. 10, 2004, incorporated herein by reference, and Fridella et al., U.S. Patent Application Pub. 2007/0088702 published Apr. 19, 2007, incorporated herein by reference.
For example, an EMC Corporation “RAINFINITY” (Trademark) file virtualization platform creates a single, logical common namespace for distributed file systems and files. Archived files are replaced with stub files containing metadata identifying the locations of the files even after the files are moved from their original storage locations. To a client, the file appears as if it were still on the primary storage device to which it was first written. Both open and locked files are virtualized and moved in a non-disruptive manner across the virtualized storage environment. This enables non-disruptive capacity management, performance balancing, and data relocation due to technology refreshes and consolidations.
Network clients have used file mapping protocols for high-speed block access to file data. See, for example, Xu et al., U.S. Pat. No. 6,324,581, issued Nov. 27, 2002, incorporated herein by reference. For high-speed block access to the file data, a client fetches file mapping metadata from a file server managing the file in order to determine the logical block addresses of the file data in block storage. Then the client inserts the logical block addresses in Small Computer System Interface (SCSI) read or write commands sent to the storage array containing the file data. In such a case, however, the migration of the file data is not transparent to the client because the migration of the file changes the file mapping metadata.